text-view: Do not double-allocate borders
authorPeter Bloomfield <PeterBloomfield@bellsouth.net>
Sun, 8 Jul 2018 21:24:07 +0000 (17:24 -0400)
committerPeter Bloomfield <PeterBloomfield@bellsouth.net>
Sun, 8 Jul 2018 21:24:07 +0000 (17:24 -0400)
Reverts part of Commit 25b67af3

The 'width' part of the commit is the cause of #628: requisition->width
is first set to priv->layout->width, which already includes
priv->left_border + priv->right_border. It's a bit labyrinthine, but
essentially:

*  layout->width is set in update_layout_size() (gtktextlayout.c line 992)
   as the maximum line width, and
*  the line width is set to display->width in gtk_text_layout_real_wrap()
   (gtktextlayout.c line 1183), and
*  display->width is set to text_pixel_width + h_margin + h_padding in
   gtk_text_layout_get_line_display() (gtktextlayout.c line 2584), and
*  h_margin + h_padding is the same as priv->left_border +
   priv->right_border.

Adding it again leads to an increase in the size-request, which
results in wider lines; rinse and repeat.

gtk/gtktextview.c

index e0b1e20e877230b535abf74ec8e33d3782440337..4c32a7b55ce158753da1df7863ba73fafa62c0e9 100644 (file)
@@ -4042,7 +4042,6 @@ gtk_text_view_size_request (GtkWidget      *widget,
   requisition->height += border_width * 2;
 
   requisition->height += priv->top_border + priv->bottom_border;
-  requisition->width += priv->left_border + priv->right_border;
 
   tmp_list = priv->children;
   while (tmp_list != NULL)